/**
 * 学习目标：受控组件,方便收集用户数据
 * state控制value和checked
 * 通过onChange和setState去更新数据
 */
import React from 'react';
import ReactDOM from 'react-dom';

class App extends React.Component {
  state = {
    name: '',
    desc: '',
    city: '',
    isSinge: false,
  };

  handelChange = (e) => {
    console.log('e.target  ----->  ', e.target);
    const { name, value, type, checked } = e.target;
    this.setState({ [name]: type === 'checkbox' ? checked : value });
  };

  render() {
    // 解构的写法
    const { name, desc, city, isSinge } = this.state;
    return (
      <div>
        姓名：
        <input
          name="name"
          type="text"
          value={name}
          onChange={this.handelChange}
        />
        <br />
        描述：
        <textarea
          name="desc"
          value={desc}
          onChange={this.handelChange}
        ></textarea>
        <br />
        城市：
        <select name="city" value={city} onChange={this.handelChange}>
          <option value="1">北京</option>
          <option value="2">上海</option>
          <option value="3">广州</option>
          <option value="4">深圳</option>
        </select>
        <br />
        是否单身：
        {/* checkbox的值是由checked控制的 */}
        <input
          name="isSinge"
          type="checkbox"
          checked={isSinge}
          onChange={this.handelChange}
        />
      </div>
    );
  }
}

ReactDOM.render(<App></App>, document.getElementById('root'));
